import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

/* Layout */
import Layout from '@/layout'

export const constantRoutes = [
  {
    path: '/login',
    component: () => import('@/views/login/index'),
    hidden: true
  },
  {
    path: '/404',
    component: () => import('@/views/404'),
    hidden: true
  },
  {
    path: '/',
    component: Layout,
    redirect: '/dashboard',
    children: [
      {
        path: 'dashboard',
        name: 'Dashboard',
        component: () => import('@/views/dashboard'),
        meta: { title: '首页', icon: 'dashboard' }
      }
    ]
  },
  // 处方管理
  {
    path: '/prescription',
    component: Layout,
    redirect: '/prescription/formularoom',
    name: 'Prescription',
    meta: { title: '处方管理', icon: 'el-icon-s-home' },
    children: [
      {
        path: 'formularoom',
        name: 'Formularoom',
        component: () => import('@/views/prescription/formularoom/index'),
        meta: { title: '配方间管理', icon: 'table' }
      },
      {
        path: 'electronic',
        name: 'Electronic',
        component: () => import('@/views/prescription/electronic/index'),
        meta: { title: '电子处方', icon: 'tree' }
      },
      {
        path: 'modify',
        name: 'Modify',
        component: () => import('@/views/prescription/modify/index'),
        meta: { title: '处方修改', icon: 'tree' }
      }
    ]
  },
  // 处方管理
  {
    path: '/decoction',
    component: Layout,
    redirect: '/decoction/formularoom',
    name: 'Decoction',
    meta: { title: '饮片库存管理', icon: 'el-icon-s-home' },
    children: [
      {
        path: 'invoicing',
        name: 'Invoicing',
        component: () => import('@/views/decoction/invoicing/index'),
        meta: { title: '入库开票', icon: 'table' }
      },
      {
        path: 'accounting',
        name: 'Accounting',
        component: () => import('@/views/decoction/accounting/index'),
        meta: { title: '入库记账', icon: 'tree' }
      }
    ]
  },

  // 订单
  // {
  //   path: '/order',
  //   component: Layout,
  //   redirect: '/order/ycspace/list',
  //   name: 'Order',
  //   meta: {
  //     title: '订单',
  //     icon: 'el-icon-s-order'
  //   },
  //   children: [
  //     {
  //       path: 'ycspace',
  //       component: () => import('@/views/order/ycspace/index'),
  //       name: 'YcspaceOrder',
  //       meta: { title: '订单管理' },
  //       redirect: '/order/ycspace/list',
  //       children: [
  //         {
  //           path: 'list',
  //           component: () => import('@/views/order/ycspace/list'),
  //           name: 'SpaceOrderList',
  //           meta: { title: '空间订单' }
  //         },
  //         {
  //           path: 'detail',
  //           component: () => import('@/views/order/ycspace/detail'),
  //           name: 'SpaceOrderDetail',
  //           meta: { title: '查看订单' },
  //           hidden: true
  //         },
  //         {
  //           path: 'seckill',
  //           component: () => import('@/views/order/ycspace/seckill'),
  //           name: 'OrderSeckill',
  //           meta: { title: '空间秒杀管理' }
  //         },
  //         {
  //           path: 'manage',
  //           component: () => import('@/views/order/ycspace/manage'),
  //           name: 'SeckillManage',
  //           hidden: true,
  //           meta: { title: '管理空间秒杀商品' }
  //         },
  //         {
  //           path: 'substitution',
  //           component: () => import('@/views/order/ycspace/substitution'),
  //           name: 'ManageSubstitution',
  //           hidden: true,
  //           meta: { title: '置换商品' }
  //         },
  //         {
  //           path: 'team',
  //           component: () => import('@/views/order/ycspace/team'),
  //           name: 'SpaceTeam',
  //           meta: { title: '管理团队' }
  //         },
  //         {
  //           path: 'structure',
  //           component: () => import('@/views/order/ycspace/structure'),
  //           name: 'SpaceStructure',
  //           meta: { title: '空间结构管理' }
  //         }
  //       ]
  //     }
  //     // {
  //     //   path: 'buyoutprice',
  //     //   component: () => import('@/views/order/buyoutprice/index'),
  //     //   name: 'YcspaceBuyoutprice',
  //     //   meta: { title: '一口价订单' },
  //     //   redirect: '/order/buyoutprice/list',
  //     //   children: [
  //     //     {
  //     //       path: 'list',
  //     //       component: () => import('@/views/order/buyoutprice/list'),
  //     //       name: 'BuyoutpriceOrderList',
  //     //       meta: { title: '订单列表' },
  //     //       children: [
  //     //         {
  //     //           path: 'detail',
  //     //           component: () => import('@/views/order/buyoutprice/list/detail'),
  //     //           name: 'BuyoutpriceOrderDetail',
  //     //           meta: { title: '查看订单' },
  //     //           hidden: true
  //     //         }
  //     //       ]
  //     //     },
  //     //     {
  //     //       path: 'warehouse',
  //     //       component: () => import('@/views/order/buyoutprice/warehouse'),
  //     //       name: 'Warehouse',
  //     //       meta: { title: '发货站点信息' }
  //     //     },
  //     //     {
  //     //       path: 'addressadd',
  //     //       component: () => import('@/views/order/buyoutprice/warehouse/add'),
  //     //       name: 'AddAddress',
  //     //       meta: { title: '添加发货点' },
  //     //       hidden: true
  //     //     },
  //     //     {
  //     //       path: 'addressupdate',
  //     //       component: () => import('@/views/order/buyoutprice/warehouse/add'),
  //     //       name: 'UpdateAddress',
  //     //       meta: { title: '编辑发货点' },
  //     //       hidden: true
  //     //     }
  //     //   ]
  //     // }
  //   ]
  // },


  { path: '*', redirect: '/404', hidden: true }
]

const createRouter = () =>
  new Router({
    // mode: 'history', // require service support
    scrollBehavior: () => ({ y: 0 }),
    routes: constantRoutes
  })

const router = createRouter()

// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
  const newRouter = createRouter()
  router.matcher = newRouter.matcher // reset router
}

export default router
